home *** CD-ROM | disk | FTP | other *** search
- 40030 *VIL_BAS_VER
- 40035 VIL_VER%=200
- 40040 RETURN
- 40070 *VIL_BEEP_INITM
- 40120 RETURN
- 40130 *VIL_BEEP_G
- 40170 FOR VIL_I%=1 TO 4:BEEP 363523,5,400:WAIT 5:NEXT
- 40175 RETURN
- 40185 *VIL_BEEP_B
- 40225 BEEP 363523,40,80:WAIT 40
- 40230 RETURN
- 40270 *VIL_WIN_INITM
- 40320 VIL_WIN_X%=0:VIL_WIN_Y%=0
- 40325 VIL_WIN_W%=0:VIL_WIN_Z%=0
- 40330 VIL_WIN_UB%=0:VIL_WIN_DB%=0
- 40335 VIL_WIN_LB%=0:VIL_WIN_RB%=0
- 40340 VIL_WIN_AN%=0
- 40345 VIL_WIN_PM%=0
- 40350 VIL_WIN_BFMAX&=VIL_W0&
- 40355 VIL_WIN_ANMAX%=VIL_W1%
- 40360 DIM VIL_WIN_BF%(VIL_W0&)
- 40365 DIM VIL_WIN_BFO&(VIL_W1%)
- 40370 DIM VIL_WIN_X%(VIL_W1%),VIL_WIN_Y%(VIL_W1%)
- 40375 DIM VIL_WIN_W%(VIL_W1%),VIL_WIN_Z%(VIL_W1%)
- 40385 VIL_WIN_X%(0)=0:VIL_WIN_Y%(0)=0
- 40390 VIL_WIN_W%(0)=639:VIL_WIN_Z%(0)=479
- 40400 RETURN
- 40410 *VIL_WIN_OP
- 40475 VIL_WIN_AN%=VIL_WIN_AN%+1
- 40480 VIL_WIN_X%(VIL_WIN_AN%)=VIL_WIN_X%:VIL_WIN_Y%(VIL_WIN_AN%)=VIL_WIN_Y%
- 40485 VIL_WIN_W%(VIL_WIN_AN%)=VIL_WIN_W%:VIL_WIN_Z%(VIL_WIN_AN%)=VIL_WIN_Z%
- 40490 VIL_WIN_BFO&(VIL_WIN_AN%)=VIL_WIN_BFO&(VIL_WIN_AN%-1)+INT((INT((VIL_WIN_W%-VIL_WIN_X%+VIL_WIN_LB%+VIL_WIN_RB%+8)/8)*(VIL_WIN_Z%-VIL_WIN_Y%+VIL_WIN_UB%+VIL_WIN_DB%+1)*4+1)/2)
- 40495 VIL_E%=0
- 40500 GET@A(VIL_WIN_X%-VIL_WIN_LB%,VIL_WIN_Y%-VIL_WIN_UB%)-(VIL_WIN_W%+VIL_WIN_RB%,VIL_WIN_Z%+VIL_WIN_DB%),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%-1)
- 40505 IF VIL_E%THEN
- 40510 VIL_WIN_AN%=VIL_WIN_AN%-1
- 40515 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
- 40520 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
- 40525 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
- 40530 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
- 40535 ENDIF
- 40540 RETURN
- 40550 *VIL_WIN_CL
- 40600 PUT@A(VIL_WIN_X%(VIL_WIN_AN%)-VIL_WIN_LB%,VIL_WIN_Y%(VIL_WIN_AN%)-VIL_WIN_UB%)-(VIL_WIN_W%(VIL_WIN_AN%)+VIL_WIN_RB%,VIL_WIN_Z%(VIL_WIN_AN%)+VIL_WIN_DB%),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%-1)
- 40605 VIL_WIN_AN%=VIL_WIN_AN%-1
- 40610 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%):VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
- 40615 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%):VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
- 40620 RETURN
- 40630 *VIL_WIN_CLDMY
- 40680 VIL_WIN_AN%=VIL_WIN_AN%-1
- 40685 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%):VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
- 40690 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%):VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
- 40695 RETURN
- 40705 *VIL_WIN_CLALL
- 40755 WHILE VIL_WIN_AN%
- 40760 GOSUB*VIL_WIN_CL
- 40765 WEND
- 40770 RETURN
- 40780 *VIL_WIN_PMR
- 40820 VIL_WIN_PM%=-1
- 40825 VIEW(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%)
- 40830 WINDOW(0,0)-(VIL_WIN_W%-VIL_WIN_X%,VIL_WIN_Z%-VIL_WIN_Y%)
- 40835 RETURN
- 40845 *VIL_WIN_PMA
- 40885 VIL_WIN_PM%=0
- 40890 VIEW(0,0)-(639,479)
- 40895 WINDOW(0,0)-(639,479)
- 40900 RETURN
- 40930 *VIL_MSEL_INITM
- 40980 VIL_MSEL_MN%=0
- 40985 VIL_MSEL_BB%=1
- 40990 VIL_MSEL_BE%=9
- 40995 VIL_MSEL_BN%=0
- 41000 VIL_MSEL_BC%=0
- 41005 VIL_MSEL_BD%=0
- 41030 VIL_MSEL_KY%=0
- 41070 DIM VIL_MSEL_X%(VIL_W1%),VIL_MSEL_Y%(VIL_W1%)
- 41075 DIM VIL_MSEL_W%(VIL_W1%),VIL_MSEL_Z%(VIL_W1%)
- 41080 DIM VIL_MSEL_BN%(VIL_W0%)
- 41085 DIM VIL_MSEL_KB%(127)
- 41095 RESTORE 41125
- 41100 FOR VIL_I%=0 TO 127
- 41105 READ VIL_MSEL_KB%(VIL_I%)
- 41110 NEXT
- 41125 DATA-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-11,-3,-2,-3,-3:
- 41130 DATA-3,-3,-3,-3,-3,-3,-10,-9,-1,-3,-3,-3,-5,-6,-7,-8:
- 41135 DATA-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,10,12,-1,13,15,11:
- 41140 DATA 0,1,2,3,4,5,6,7,8,9,-3,-3,-3,14,-3,-3:
- 41145 DATA-3,10,11,12,13,14,15,-3,-3,-3,-3,-3,-3,-3,-3,-3:
- 41150 DATA-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3:
- 41155 DATA-3,10,11,12,13,14,15,-3,-3,-3,-3,-3,-3,-3,-3,-3:
- 41160 DATA-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-12:
- 41190 MOUSE 0:MOUSE 1,320,240,0
- 41195 RETURN
- 41205 *VIL_MSEL_M
- 41405 GOSUB*VIL_MSEL_BCMK
- 41410 GOSUB*VIL_MSEL_IN
- 41415 RETURN
- 41425 *VIL_MSEL_BCMK
- 41530 IF VIL_MSEL_BD%AND 2 THEN VIL_W1%=-1 ELSE VIL_W1%=1
- 41535 IF VIL_MSEL_BD%AND 4 THEN VIL_W2%=-1 ELSE VIL_W2%=1
- 41540 FOR VIL_I%=1 TO VIL_YN%
- 41545 FOR VIL_J%=1 TO VIL_XN%
- 41550 IF VIL_MSEL_BD%AND 1 THEN
- 41555 VIL_W0%=(VIL_J%-1)*VIL_YN%+VIL_I%-1+VIL_MSEL_BB%
- 41560 ELSE
- 41565 VIL_W0%=(VIL_I%-1)*VIL_XN%+VIL_J%-1+VIL_MSEL_BB%
- 41570 ENDIF
- 41575 VIL_MSEL_X%(VIL_W0%)=VIL_X%+(VIL_J%-1)*VIL_XL%*VIL_W1%
- 41580 VIL_MSEL_Y%(VIL_W0%)=VIL_Y%+(VIL_I%-1)*VIL_YL%*VIL_W2%
- 41585 VIL_MSEL_W%(VIL_W0%)=VIL_W%+(VIL_J%-1)*VIL_XL%*VIL_W1%
- 41590 VIL_MSEL_Z%(VIL_W0%)=VIL_Z%+(VIL_I%-1)*VIL_YL%*VIL_W2%
- 41595 NEXT
- 41600 NEXT
- 41605 RETURN
- 41615 *VIL_MSEL_IN
- 41815 VIL_W4%=MOUSE(3,0)+MOUSE(3,1)
- 41820 VIL_W0%=-5:VIL_W1%=-6:VIL_W2%=-7:VIL_W3%=-8
- 41825 IF VIL_MSEL_BD%AND 2 THEN SWAP VIL_W0%,VIL_W1%
- 41830 IF VIL_MSEL_BD%AND 4 THEN SWAP VIL_W2%,VIL_W3%
- 41835 IF VIL_MSEL_BD%AND 1 THEN SWAP VIL_W0%,VIL_W3%:SWAP VIL_W1%,VIL_W2%
- 41855 MOUSE 1,,,1
- 41860 IF VIL_MSEL_MN%THEN VIL_MSEL_BN%=VIL_MSEL_BN%(VIL_MSEL_MN%)
- 41865 IF VIL_MSEL_BN%<VIL_MSEL_BB%OR VIL_MSEL_BE%<VIL_MSEL_BN%THEN VIL_MSEL_BN%=VIL_MSEL_BB%
- 41870 IF VIL_MSEL_BC%=0 THEN GOSUB*VIL_MSEL_BC
- 41880 GOSUB*VIL_MSEL_KY
- 41890 IF MOUSE(3,1)OR VIL_MSEL_KY%=-1 THEN
- 41895 VIL_W4%=MOUSE(3,0)
- 41900 VIL_KN%=-1
- 41905 ELSE IF MOUSE(3,0)OR MOUSE(2,0)THEN
- 41910 VIL_KN%=-2
- 41915 VIL_MX%=MOUSE(0):VIL_MY%=MOUSE(1)
- 41920 IF VIL_WIN_PM%THEN
- 41925 IF VIL_WIN_X%<=VIL_MX%AND VIL_MX%<=VIL_WIN_W%AND VIL_WIN_Y%<=VIL_MY%AND VIL_MY%<=VIL_WIN_Z%THEN
- 41935 VIL_MW%=VIL_MX%-VIL_WIN_X%:VIL_MZ%=VIL_MY%-VIL_WIN_Y%
- 41940 FOR VIL_I%=VIL_MSEL_BB%TO VIL_MSEL_BB%+VIL_XN%-1
- 41945 IF VIL_MSEL_X%(VIL_I%)=<VIL_MW%AND VIL_MW%=<VIL_MSEL_W%(VIL_I%)THEN
- 41950 FOR VIL_J%=VIL_I%TO VIL_MSEL_BE%STEP VIL_XN%
- 41955 IF VIL_MSEL_Y%(VIL_J%)=<VIL_MZ%AND VIL_MZ%=<VIL_MSEL_Z%(VIL_J%)THEN
- 41960 VIL_KN%=VIL_J%
- 41965 GOSUB*VIL_MSEL_BC
- 41970 VIL_MSEL_BN%=VIL_KN%
- 41975 GOSUB*VIL_MSEL_BC
- 41980 VIL_I%=VIL_MSEL_BE%:VIL_J%=VIL_I%
- 41985 ENDIF
- 41990 NEXT
- 41995 ENDIF
- 42000 NEXT
- 42005 ENDIF
- 42010 ELSE
- 42015 VIL_MW%=-1
- 42020 FOR VIL_I%=VIL_MSEL_BB%TO VIL_MSEL_BB%+VIL_XN%-1
- 42025 IF VIL_MSEL_X%(VIL_I%)=<VIL_MX%AND VIL_MX%=<VIL_MSEL_W%(VIL_I%)THEN
- 42030 FOR VIL_J%=VIL_I%TO VIL_MSEL_BE%STEP VIL_XN%
- 42035 IF VIL_MSEL_Y%(VIL_J%)=<VIL_MY%AND VIL_MY%=<VIL_MSEL_Z%(VIL_J%)THEN
- 42040 VIL_KN%=VIL_J%
- 42045 GOSUB*VIL_MSEL_BC
- 42050 VIL_MSEL_BN%=VIL_KN%
- 42055 GOSUB*VIL_MSEL_BC
- 42060 VIL_I%=VIL_MSEL_BE%:VIL_J%=VIL_I%
- 42065 ENDIF
- 42070 NEXT
- 42075 ENDIF
- 42080 NEXT
- 42085 ENDIF
- 42090 ELSE
- 42095 IF VIL_MSEL_KY%=-4 THEN
- 42100 GOTO 41880
- 42105 ELSE IF VIL_MSEL_BB%<=VIL_MSEL_KY%AND VIL_MSEL_KY%<=VIL_MSEL_BE%THEN
- 42115 VIL_KN%=VIL_MSEL_KY%
- 42120 GOSUB*VIL_MSEL_BC:VIL_MSEL_BN%=VIL_KN%:GOSUB*VIL_MSEL_BC
- 42125 ELSE IF VIL_MSEL_KY%=-2 THEN
- 42130 VIL_KN%=VIL_MSEL_BN%
- 42135 ELSE IF-8<=VIL_MSEL_KY%AND VIL_MSEL_KY%<=-5 THEN
- 42140 GOSUB*VIL_MSEL_BC
- 42145 VIL_MSEL_BN%=VIL_MSEL_BN%-(VIL_MSEL_KY%=VIL_W0%)+(VIL_MSEL_KY%=VIL_W1%)+((VIL_MSEL_KY%=VIL_W2%)-(VIL_MSEL_KY%=VIL_W3%))*VIL_XN%
- 42150 VIL_MSEL_BN%=VIL_MSEL_BN%+(VIL_MSEL_KY%=VIL_W0%AND(VIL_MSEL_BN%MOD VIL_XN%)=1)*VIL_XN%
- 42155 VIL_MSEL_BN%=VIL_MSEL_BN%-(VIL_MSEL_KY%=VIL_W1%AND((VIL_MSEL_BN%+1)MOD VIL_XN%)=1)*VIL_XN%
- 42160 VIL_MSEL_BN%=VIL_MSEL_BN%-((VIL_MSEL_BN%<VIL_MSEL_BB%)-(VIL_MSEL_BN%>VIL_MSEL_BE%))*(VIL_MSEL_BE%-VIL_MSEL_BB%+1)
- 42165 GOSUB*VIL_MSEL_BC
- 42170 GOTO 41880
- 42175 ELSE
- 42180 VIL_KN%=-3
- 42185 ENDIF
- 42190 ENDIF
- 42200 VIL_MSEL_BN%(VIL_MSEL_MN%)=VIL_MSEL_BN%
- 42205 MOUSE 1,,,0
- 42210 VIL_MSEL_BC%=-1
- 42215 RETURN
- 42225 *VIL_MSEL_BC
- 42265 LINE(VIL_MSEL_X%(VIL_MSEL_BN%),VIL_MSEL_Y%(VIL_MSEL_BN%))-(VIL_MSEL_W%(VIL_MSEL_BN%),VIL_MSEL_Z%(VIL_MSEL_BN%)),XOR,%VIL_C%,B
- 42270 RETURN
- 42280 *VIL_MSEL_KY
- 42340 VIL_K$=INKEY$
- 42345 IF VIL_K$<>""THEN VIL_KY%=ASC(VIL_K$):VIL_MSEL_KY%=VIL_MSEL_KB%(VIL_KY%)ELSE VIL_KY%=0:VIL_MSEL_KY%=-4
- 42350 RETURN
- 42380 *VIL_INP_INITM
- 42425 VIL_INP_L%=0:VIL_INP_CX%=0
- 42435 MOUSE 0:MOUSE 1,320,240,0
- 42440 RETURN
- 42450 *VIL_INP_STR
- 42565 VIL_INP_L%=LEN(VIL_A$):VIL_INP_CX%=VIL_INP_L%
- 42570 MOUSE 1,,,1
- 42580 GOSUB*VIL_INP_GPRINT
- 42585 GOSUB 42805
- 42595 VIL_K$=INKEY$
- 42600 IF VIL_K$<>""THEN VIL_KY%=ASC(VIL_K$)ELSE VIL_KY%=0
- 42610 IF MOUSE(3,1)OR VIL_KY%=24 THEN
- 42615 VIL_KN%=-1
- 42620 ELSE IF MOUSE(3,0)OR MOUSE(2,0)THEN
- 42625 VIL_MX%=MOUSE(0):VIL_MY%=MOUSE(1)
- 42630 IF VIL_WIN_PM%THEN
- 42635 IF VIL_WIN_PM%AND VIL_WIN_X%<=VIL_MX%AND VIL_MX%<=VIL_WIN_W%AND VIL_WIN_Y%<=VIL_MY%AND VIL_MY%<=VIL_WIN_Z%THEN
- 42640 VIL_MW%=VIL_MX%-VIL_WIN_X%:VIL_MZ%=VIL_MY%-VIL_WIN_Y%
- 42645 ELSE
- 42650 VIL_MW%=-1
- 42655 ENDIF
- 42660 ENDIF
- 42665 VIL_KN%=-2
- 42670 ELSE IF VIL_KY%=13 THEN
- 42675 VIL_KN%=0
- 42680 ELSE
- 42685 IF VIL_KY%=0 THEN 42595
- 42690 GOSUB 42805
- 42695 IF VIL_KY%=29 AND VIL_INP_CX%>0 THEN VIL_INP_CX%=VIL_INP_CX%-1:GOTO 42585
- 42700 IF VIL_KY%=28 AND VIL_INP_CX%<VIL_INP_L%THEN VIL_INP_CX%=VIL_INP_CX%+1:GOTO 42585
- 42705 IF VIL_KY%>=32 AND VIL_KY%<>127 AND VIL_INP_L%<VIL_L%THEN
- 42715 VIL_A$=LEFT$(VIL_A$,VIL_INP_CX%)+VIL_K$+MID$(VIL_A$,VIL_INP_CX%+1)
- 42720 VIL_INP_L%=VIL_INP_L%+1:VIL_INP_CX%=VIL_INP_CX%+1
- 42725 ELSE IF VIL_KY%=8 AND VIL_INP_CX%>0 THEN
- 42730 VIL_A$=LEFT$(VIL_A$,VIL_INP_CX%-1)+MID$(VIL_A$,VIL_INP_CX%+1)
- 42735 VIL_INP_L%=VIL_INP_L%-1:VIL_INP_CX%=VIL_INP_CX%-1
- 42740 ELSE IF VIL_KY%=127 AND VIL_INP_CX%<VIL_INP_L%THEN
- 42745 VIL_A$=LEFT$(VIL_A$,VIL_INP_CX%)+MID$(VIL_A$,VIL_INP_CX%+2)
- 42750 VIL_INP_L%=VIL_INP_L%-1
- 42755 ELSE IF VIL_KY%=11 THEN
- 42760 VIL_A$="":VIL_INP_L%=0:VIL_INP_CX%=0
- 42765 ENDIF
- 42770 GOTO 42580
- 42775 ENDIF
- 42780 MOUSE 1,,,0
- 42785 GOSUB 42805
- 42790 RETURN
- 42805 LINE(VIL_X%+VIL_INP_CX%*8,VIL_Y%+17)-(VIL_X%+VIL_INP_CX%*8+7,VIL_Y%+17),XOR,%VIL_C%
- 42810 RETURN
- 42820 *VIL_INP_GPRINT
- 42880 LINE(VIL_X%,VIL_Y%)-(VIL_X%+VIL_L%*8-1,VIL_Y%+15),PSET,%VIL_CB%,BF
- 42885 SYMBOL(VIL_X%,VIL_Y%),VIL_A$,1,1,%VIL_C%
- 42890 RETURN
- 42900 *VIL_INP_MVWAIT
- 42940 VIL_W0%=MOUSE(9)+MOUSE(10):VIL_W0$=INKEY$
- 42945 WHILE ABS(MOUSE(9))<10 AND ABS(MOUSE(10))<10 AND MOUSE(2,0)+MOUSE(2,1)=0 AND INKEY$="":WEND
- 42950 RETURN
-